package code.class1;

/**
 * https://leetcode.cn/problems/reverse-integer/description/
 * 整数反转
 */
public class Code06_NumberReverse {
    public static void main(String[] args) {
        // 1534236469
        // -12345
        int num = 123;
        int reverse = reverse(num);
        System.out.println("reverse = " + reverse);
    }

    public static int reverse(int x) {
        int t = 0;
        while (x != 0) {
            //通过这个检查，我们避免了溢出发生
            // t < Integer.MIN_VALUE / 10 或 t > Integer.MAX_VALUE / 10 表示当前 rev 如果继续乘 10 后会超出范围。
            if (t < Integer.MIN_VALUE / 10 || t > Integer.MAX_VALUE / 10) return 0;
            t *= 10;
            t += x % 10;
            x /= 10;
        }
        return t;
    }
}
